package kazan.fujitsu.lab.l11;

import kazan.fujitsu.lab.l11.model.Data;

/**
 * @author ayratn
 */
public interface MainSolution {

    /**
     * Gets tasks's input parameters from "input.txt".
     *
     * @throws Exception
     * @return {@link Data}
     */
    Data readData() throws Exception;

    /**
     * Solves the task.
     *
     * @param data Task's input data.
     *
     * @throws Exception
     */
    void solve(Data data) throws Exception;

    /**
     * Writes the answer to "output.txt".
     * @throws Exception
     */
    void writeAnswer() throws Exception;
}
